import { micAppTypes } from "./model/appTypes";
import Config from "@/config";
export class MicAppConfig {
  //微前端应用配置
  appType: micAppTypes = micAppTypes.ROOT; //应用类型
  prefixRoute = "/micApp"; //路径前缀 （和父应用 根应用挂载子应用位置有关）
  parentAppNode = "parent"; //父应用节点
  childAppNode = "child"; //子应用节点
  parentName = Config.projectName; //本应用为父应用时名
  // parentName="app" //本应用为父应用时名
  childName = Config.projectName; //本应用为子应用时名
  // childName="app" //本应用为子应用时名
  get basePath(): string {
    //本应用基础根路径
    if (window.__POWERED_BY_QIANKUN__) {
      switch (this.appType) {
        case micAppTypes.ROOT:
          return process.env.BASE_URL;

        case micAppTypes.PARENT:
          return `${this.prefixRoute}/${this.parentAppNode}/${this.parentName}${process.env.BASE_URL}`;

        case micAppTypes.CHILD:
          return `${this.prefixRoute}/${this.childAppNode}/${this.childName}${process.env.BASE_URL}`;

        default:
          return process.env.BASE_URL;
      }
    } else return process.env.BASE_URL;
  }
  childAppList: { name: string; entry: string }[] =
    Config.childAppList && Config.childAppList.length > 0
      ? Config.childAppList
      : []; //子应用列表
}

export default new MicAppConfig();
